package com.just.edu.service;

import com.just.edu.dto.FileHolder;
import com.just.edu.dto.HomeworkExecution;
import com.just.edu.entity.Homework;

import java.util.List;

public interface HomeworkService {
    /**
     * @author: 阿腾泰萌队
     * @description: 查询全部实验报告信息
     * @createTime: 2022/11/29 12:34
     *
     * @param
     * @return java.util.List<com.just.edu.entity.Homework>
     */
    List<Homework> getHomeworkList();

    /**
     * @author: 阿腾泰萌队
     * @description: 通过实验报告ID查询指定实验报告信息
     * @createTime: 2022/11/29 12:35
     *
     * @param homeworkId
     * @return com.just.edu.entity.Homework
     */
    Homework getHomeworkById(long homeworkId);

    /**
     * @author: 阿腾泰萌队
     * @description: 通过课程ID查询实验报告列表信息
     * @createTime: 2022/11/29 17:07
     *
     * @param courseId
     * @return java.util.List<com.just.edu.entity.Homework>
     */
    List<Homework> getHomeworkByCourseId(long courseId);

    /**
     * @author: 阿腾泰萌队
     * @description: 通过教师ID查询实验报告列表信息
     * @createTime: 2022/11/29 10:49
     *
     * @param teacherId
     * @return java.util.List<com.just.edu.entity.Homework>
     */
    List<Homework> getHomeworkByTeacherId(long teacherId);

    /**
     * @author: 阿腾泰萌队
     * @description: 通过学生ID查询实验报告列表信息
     * @createTime: 2022/11/29 12:45
     *
     * @param studentId
     * @return java.util.List<com.just.edu.entity.Homework>
     */
    List<Homework> getHomeworkByStudentId(long studentId);

    /**
     * @author: 阿腾泰萌队
     * @description: 新增实验报告信息
     * @createTime: 2022/11/29 12:35
     *
     * @param homework
     * @param fileHolder
     * @return com.just.edu.dto.HomeworkExecution
     */
    HomeworkExecution addHomework(Homework homework, FileHolder fileHolder);

    /**
     * @author: 阿腾泰萌队
     * @description: 修改实验报告信息
     * @createTime: 2022/11/29 12:35
     *
     * @param homework
     * @param fileHolder
     * @return com.just.edu.dto.HomeworkExecution
     */
    HomeworkExecution modifyHomework(Homework homework, FileHolder fileHolder);

    /**
     * @author: 阿腾泰萌队
     * @description: 删除指定实验报告信息
     * @createTime: 2022/11/29 12:45
     *
     * @param homeworkId
     * @return com.just.edu.dto.HomeworkExecution
     */
    HomeworkExecution deleteHomework(long homeworkId);
}
